﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using MotorMetricas.Entidades;
using MotorMetricas.Datos.Interfaces;
using MotorMetricas.Datos.FabricaDatos;
using MotorMetricas.Entidades.FabricaEntidades;


namespace MotorMetricas.Datos.DaosSqlServer
{
    public class DaoSqlServerAccesoReporte : IDaoAccesoReporte
    {

        IDaoAccesoConexion bd = FabricaConexion.DaoSqlServerAccesoConexion();

        // Metodo que inserta en la tabla reporte las metricas generadas
        public bool InsertarReporte(Reporte reporte)
        {
            SqlCommand command = new SqlCommand();

            try
            {
                bd.AbrirConexionBd();

                command.Connection = bd.ObjetoConexion();
                command.CommandType = System.Data.CommandType.StoredProcedure; //Tipo de comando que se va a ejecutar
                command.CommandText = "[dbo].[InsertReporte]"; // Nombre del Procedimiento Almacenado en la Base de Datos
                command.CommandTimeout = 10;

                command.Parameters.AddWithValue("@FK_Proyecto", reporte.IdProyecto);
                command.Parameters.AddWithValue("@FK_Metrica", reporte.IdMetrica);
                command.Parameters.AddWithValue("@Fecha_Ejecucion", System.DateTime.Today);
                command.Parameters.AddWithValue("@Resultado", reporte.Contador);
                SqlDataReader reader = command.ExecuteReader();

                reader.Close();
                bd.CerrarConexionBd();
                return true;

            }

            catch (SqlException)
            {
                bd.CerrarConexionBd();
                return false;
            }

            catch (Exception)
            {
                bd.CerrarConexionBd();
                return false;
            }
        }

    }
}
